perm filename REPR[DOC,TOB] blob sn#129336 filedate 1974-11-01 generic text, type T, neo UTF8
00100	Some general considerations behind representation of shape:
00200		volume not surface representation
00300			question of dimensionality-proper dimension
00400			that is, we want to represent the interior
00500			of our laser-scan data, not the boundary.
00600			We want to evaluate whether the profiles are
00700			included in descriptions, not whether the
00800			boundary is included in descriptions.
00900		high level vs low level descriptions
01000			we can identify high and low level with
01100			object space and image space descriptions.
01200			
01300	
01400	
01500	
01600	
01700	
01800	some practical approaches to description
01900		sample coarsely, form a "global" model, then verify
01950			start with ends?
01975			length to width ratio
02000		describe the profiles, not the boundary
     

00100	It is now more or less accepted that a representation like
00200	that of Agin, Nevatia  and Binford is a prime candidate for
00300	a system representation for complex objects.  The question
00400	of representation of cross sections is most clearly resolved
00500	in terms of that doctrine.
00600	
00700	If we believe the doctrine, the representation of areas in
00800	two dimensions is a representation problem of the same sort
00900	in one lower dimension.  The first step is segmentation
01000	with cutting and pasting.  The choice of primitive elements
01100	is now raised in two dimensions instead of three.  The doctrine
01200	tells us to look for a cross-section defined along a space curve.
01300	That cross-section is one-dimensional, a line, and the space
01400	curve is defined in two dimensions.  Of course, circles would
01500	be added as a primitive.
01600	
01700	When we look at the alternate forms of representation, they might be:
01800		1.  expansions (spline,Fourier,moments....)
01900		2.  spatial domain tables (r vs theta)
02000		3.  templates, with modifications
02100		4.  feature list (not closely organized)
02200		5.  boundary curve (trouble with closure-leads to syntax)
02300	We have agreed that splines and other expansions are of dubious value for
02400	recognition and similarity operations.  They also tend to be associated with
02500	unarticulated descriptions.  Spatial domain tables are rather alike.  They
02600	also can be useful in special cases.  They do have some advantages in not
02700	losing locality.  Saying templates is not enough.  We must specify their
02800	representation, which must be one of those techniques.  Feature lists are
02900	a vague way of pointing at the extreme form of network descriptions.  All
03000	our representations will be some network.  Whether the arcs are set properties
03100	or geometrical measurements is significant.  If we try to get along with
03200	set membership (MUST-HAVE) or boolean geometrical properties (LEFT-OF)
03300	then we will not do well.
03400	Finally, we have the boundary curve representation.  We make a comparison
03500	between representing an area by its boundary(curve), and representing a volume
03600	by its boundary (surface).  We contend that in three dimensions for strong
03700	and profound reasons, that representing volume is the right thing to do,
03800	not represent the cuts in the volume.  The same thing is true for two dimensions,
03900	that we must represent the area and not the cuts in two dimensions.  There
04000	are quite important properties which are not well-expressed by surface
04100	representations in three-dimensions and curve representations in two dimensions
04200	which do have simple expression in the cross section representation.
04300	To give an example from two dimensions, which has an obvious counterpart in
04400	three dimensions.  Suppose I want to describe polygons by a curve description.
04500	Nothing easier.  I have a string, L1,A1,L2,A2,L3,A3,...
04600	of lengths Li and angles Ai. Now I just make up a grammar and we win big.
04700	Question: does a string make a realizable polygon, does it cross and does
04800	it close?  Question:  where is a thin part to pick up the object?  How would
04900	I make up an approximate description of lesser quality-is it still realizable?
05000	We see that those are non-local computations with the boundary string description
05100	but that they are better behaved with the cross section along an axis
05200	representation.  That is, to see that the axis does not cross is a global
05300	property, but we can use local properties to answer local questions:
05400	is the shape locally realizable?  where is the shape thin?
     

00100	As a problem for exercising AI languages,  we  would  like  a  choice
00200	which  tests  specific  language features.  It is also useful to know
00300	that the features used are of  real  significance  to  AI,  not  just
00400	formally convenient or familiar.  The criteria might be:
00500		requires representation of a coherent body of knowledge
00600		requires planning rather than a searching solution
00700		allows convenient suggestion of heuristic knowledge
00800		takes account of serendipity
00900		has real-world input.
01000	
01100	The problem I propose is to create perceptual strategies for locating
01200	objects  from  their symbolic descriptions in my representation which
01300	is being used for description of the shape of  complex  objects.   We
01400	are  given  some objects in a visual world, and representation of the
01500	objects and what we know about their position,  location,  (lighting,
01600	color,  etc).   We  have  some  visual operations (lines, contouring,
01700	curve fitting, verification,..) and descriptions  of  when  they  are
01800	appropriate.   Generate  a  program  which  will  locate  a specified
01900	object.
02000	
02100	The object we have in mind is the water pump which is being  used  by
02200	hand/eye.   Locate  the  body  of the pump.  Give its orientation and
02300	position accurately enough that it can be  picked  up  by  the  hand.
02400	Locate the cover (which has a long shaft) for the same purpose.
02500	
     

00100	THE REPRESENTATION OF SHAPE
00200	
00300	The  representation  [Binford  1971]depends  upon   segmentation   to
00400	describe  complex  objects  in  terms of parts. The representation is
00500	graph-structured: nodes correspond to parts, while arcs correspond to
00600	relations  between  parts.    Parts are themselves structures of this
00700	form.  The relations include relative position and  orientation,  the
00800	degrees  of  freedom,  symmetry,  and any detailed knowledge of joint
00900	structure.  Examples are neck joint, shoulder joint, and hip joint of
01000	a human.
01100	
01200	The topological operations of cutting and pasting are used in joining
01300	parts.      Normally,  we  think  of  holes  as  made  by  cuts   and
01400	protuberances  as  made by pasting; this can be done purely formally,
01500	but we would like to generalize that to a choice between the  simpler
01600	of  structures,  with cuts or glue.  In fabrication, cutting is often
01700	used to form even complicated  protuberances;  attaching  seems  more
01800	difficult,  particularly  when dimensional accuracy is necessary. The
01900	representation  reflects  some  fabrication  operations,  and  allows
02000	embedding  of  heuristic  knowledge.     The representations resemble
02100	construction algorithms.   But we would not  expect  that  reasonable
02200	construction   algorithms   could   emerge  until  a  micro-world  of
02300	fabrication operations is available for evaluation of simplicity.
02400	
02500	We have concentrated on the inverse  problem  of  building  up  these
02600	structures  from visual data.  When possible, the choice of parts and
02700	description of joint relations uses whatever knowledge is  available.
02800	When  guesses  are  necessary,  we  have a number of heuristics which
02900	correspond to our intuition about shape.
03000	
03100	The primitive parts are  described  by  volume  representations.   We
03200	maintain that a useful choice of parts is in terms of arm-like parts,
03300	which come naturally from the representation. The primitive parts are
03400	described  by "generalized local cones".  These are the volumes swept
03500	out by taking an arbitrary cross section and translating it  along  a
03600	path,  maintaining  the  cross  section normal to the path, while the
03700	scale of the cross section is changed smoothly.  The  basis  of  this
03800	representation is the description of a large class of shapes based on
03900	transformation of  local  descriptions.  The  typical  element  is  a
04000	snake-like  piece,  described by an axis (which is a space curve) and
04100	normal cross sections.   The cross  sections  are  arbitrary.   Local
04200	cylinders,  cones,  toroids,  and  helices,  all with arbitrary cross
04300	sections, are typical examples.
04400	
04405	The process of segmentation allows non-unique representations.  This
04410	permits a choice of simple representations; we can regard it as an
04415	advantage that we have such a choice.
04500	We have a simplicity criterion of shapes based on the  transformation
04600	function   on  the  cross  section  (constant=cylinder,  linear=cone,
04700	monotonic, convex, single maximum, shape changing...).
04800	
04900				MAN
05000	
05100	
05200				<SHOULDERS>
05300				   |
05400				 <HIPS>
05500	
05600	
05700				
05800			       [HEAD]
05900				 |
06000				NECK
06100				 |
06200		      [ARM]--<SHOULDERS>--[ARM]
06300				 |
06400			       TRUNK
06500				 |
06600			      <HIPS>
06700			      |    |
06800			  [LEG]    [LEG]
06900	
07000	
07100	
07200	
07300	
07400	and ARM is:		ARM
07500	
07600			     UPPER ARM
07700				|
07800			      <ELBOW>
07900				|
08000			     FOREARM
08100				|
08200			     <WRIST>
08300				|
08400			      <HAND>
08500		  |	   |	    |	      |	      |
08600		[FINGER] [FINGER] [FINGER] [FINGER] [THUMB]
08700	
08800	
08900	
09000	A primitive has the representation:
09100	
09200			FOREARM
09300		    |	  |      |
09400		CROSS	AXIS	TRANSFORMATION
09500	       SECTION
09600	
09700	The  primary  considerations  for  the  utility of the representation
09800	concern the tasks we will  need  to  perform.   These  tasks  can  be
09900	described in various ways; the most enlightening description of tasks
10000	is in terms of their computational structure.   For  these  problems,
10100	topological  and  geometric  considerations  are  important.  Surface
10200	representations have been used for display  purposes.   For  robotics
10300	applications,  the representation for manipulation would need to make
10400	explicit how to pick up an object, i.e. where is the center of  mass,
10500	the  center  of rotation, and what are the moments.  How thick is the
10600	piece, and how long?  These are more than  just  surface  properties,
10700	and  the  surface  representation  is  no  help  in determining these
10800	properties. These properties are the sort  of  properties  which  are
10900	natural  for  our  volume representations; however surface properties
11000	are quite naturally obtained in this representation.
11100	
11200	The  cross  sections  are  represented  in  the  same  fashion in two
11205	dimensions as  objects  are  in  three  dimensions.   The  part/whole
11210	segmentation  is  crucial.    The parts which are useful are not just
11215	curves,  but  arm-like  areas.  Thus  we  are  interested   in   area
11220	representations, not curve representations. The descriptions in terms
11225	of a two-dimensional  axis  and  width  are  similar  to  the  volume
11230	representations.
12000	
12100			CROSS SECTION
12200		[AREA-PART]--<JOINT>--[AREA-PART]
12300	
12400	
12500	where a part of a cross section is an area defined  by  subparts.   A
12600	primitive part is defined by:
12700			    PRIMITIVE AREA-PART
12800			|	|	|	|
12900		     WIDTH    AXIS   TRANS   SURFACE
13000					     PROPERTIES
13100	
13200	The pump can be described by:
13300				PUMP
13400	
13500	
13600		    SCREWS-----[HOUSING]----SCREWS
13700		     |		  |	      |
13800		     |	       <MATING>	      |
13900		     |		  |	      |
14000		     |----------[GASKET]------|
14100		     |		  |	      |
14200		     |		<MATING>      |
14300		     |		  |	      |
14400		     |----------[TOP]---------|
14500	
14600	The housing description is the basis of our prediction mechanism:
14700	
14800				[HOUSING]
14900	
15000	
15100	
15200	
15300		IMPELLER------PLATE-------SCREW HOLES
15400		  HOLE     |	   |
15500		HOLE IN ---	[BODY]
15600		2ND CHAMBER
15700	
15800	The coordinate system is local to each element.  That is,
15900	each link contains a transformation required to go from the
16000	coordinate system of one element at a joint at one end, to the
16100	coordinate system of an element at the joint at the other end.
16200	This is a translation combined with a rotation.  It is most
16300	convenient to define the local coordinates in terms of actual
16400	vectors rather than with an arbitrary basis.